home *** CD-ROM | disk | FTP | other *** search
- ┌──────────────────────────────────────────────────────────────────────────┐
- │┌────────────────────────────────────────────────────────────────────────┐│
- ││ ││
- ││ KALIN ÿ₧LER... ││
- ││ ││
- │└────────────────────────────────────────────────────────────────────────┘│
- │ PS 31 · ₧ubat'96 Tunç Sabuncu │
- └──────────────────────────────────────────────────────────────────────────┘
-
-
- Bir süredir bu sayfalarda "ince iƒler" baƒlìºì altìnda veri yapìlarìndan söz
- ediyoruz. Veri yapìlarì kadar önemli olan bir diºer konu da sayìsal
- analizdir. ÿçinden çìkìlmaz gibi görünen denklemleri bilgisayarla kolayca
- çözebilirsiniz. Özellikle virgülden sonraki sayìlarìn da önemli olduºu
- hesaplamalarda bilgisayarlarìn insan beynine açìk bir üstünlüºü vardìr. Bu
- iddiaya bozulan varsa aƒaºìdaki denklem sistemine bir göz atabilir:
-
- 77.43*X1 + 45.33*X2 + 89.65*X3 = 77.56
- 56.12*X1 + 90.02*X2 + 12.34*X3 = 55.55
- 99.01*X1 + 44.99*X2 + 60.11*X3 = 65.22
-
- Aslìnda bu tür denklem sistemlerinin çözümü üniversitelerde lineer cebir
- derslerinde öºretilir. Katsayìlarì bir matris oluƒturacak ƒekilde yazìp
- satìr iƒlemleri ile ana çapraz ( köƒegen üzerindeki elemanlar ) altìnda
- kalan elemanlar sìfìrlanìr ve X'ler bir bir hesaplanìr. Ama yukarìdaki gibi
- bir soruyu soracak kadar insafsìz bir lineer cebir hocasì her halde ÿTÜ'de
- bile yoktur. Neyse, dedikoduyu bir yana bìrakalìm da programdan söz edelim.
- Bu ayki programìmìz yukarìdaki gibi üç bilinmeyenli üç denklemden oluƒan
- sistemleri çözen bir sayìsal analiz uygulamasì. Siz yanlìzca katsayìlarì ve
- eƒitliºin karƒìsìndaki deºeri veriyorsunuz, gerisi ona kalmìƒ. Programìmìz
- yaptìºì satìr iƒlemleri konusunda kullanìcìyì aydìnlatìrken matrisin her bir
- evredeki halini de ekrana getirerek adeta bir BDE (!) uygulamasì gibi
- çalìƒìyor.
-
-
- Nasìl Çalìƒìr?
-
- Çok fazla gerekmemekle birlikte kod gene de modüler yazìldì. Bunlardan
- 'matris_al' altyordamì denklem sisteminin katsayìlarìnì matris ƒeklinde
- alìrken 'matris_yaz' da a[i,j] matrisini satìr satìr yazìyor. ( Konuya yeni
- ìsìnan arkadaƒlar bu altyordamlarì kendi matris programlarìnda
- kullanabilirler.) Esas önemli olan altyordamlar 'birinci' ve 'ikinci'.
- Birinci adlì yordam çaºìrìldìºìnda ikinci ve üçüncü satìrlarìn ilk
- elemanlarìnì birinci satìrdan yararlanarak sìfìra eƒitliyor. ÿkinci ise
- ikinci satìrìn ikinci elemanìnì kullanarak üçüncü satìrìn ikinci elemanìnì
- sìfìra eƒitliyor. Bu iƒlemlerin sonunda üç bilinmeyenli üç denklem yerine
- bir, iki ve üç bilinmeyenli üç denklem ortaya çìkìyor. ÿƒin geri kalan kìsmì
- margarinden saç çekmek kadar kolay.
-
- Yazìlìm Ergonomisi üzerine birkaç lakìrdì...
-
- Programìn kodu içinde akìƒ üzerine hiçbir etkisi olmayan writeln'ler
- göreceksiniz. Bunlar olmadan program bazì sayìlar alan ve bazì sayìlar veren
- bir kara kutu olurdu. Oysa bu basit komutlar sayesinde matris üzerinde
- yapìlan satìr iƒlemleri bir bir anlatìlìyor ve bunlarìn etkisi adìm adìm
- gösteriliyor. Programìn sonlarìna doºru ise hangi X deºerinin nereden
- geldiºini belli etmek için "...'yì ƒurada yerine koyarsak" gibi ifadelerle
- kullanìcì aydìnlatìlìyor. Aslìnda ergonomik program yazmak çoºu zaman bu
- kadar basit. Örneºin kullanìcìdan bir girdi istendiºi zaman bunun ne
- olduºunu, nerede nasìl kullanìlacaºìnì açìklayan ve bu sayede kolay
- kullanìlan ve hìzla öºrenilen programlar yazmak hiç zor deºil. Bu kodu hem
- 'kalìn iƒler' gözüyle hem de yazìlìm ergonomisi gözüyle inceleyin. Hepinize
- sayìsal analizli günler...
-
-